home *** CD-ROM | disk | FTP | other *** search
-
- PROCEDURE INITCMD;(*MODIFIED FOR SHARP*)
- VAR
- FD:FILEDESC;
- FNAME:XSTRING;
- FT:FILTYP;
- IDX:1..MAXSTR;
- JSKIP:INTEGER;
- JUNK:BOOLEAN;
-
-
- BEGIN
- CMDFIL[STDIN]:=STDIO;
- CMDFIL[STDOUT]:=STDIO;
- CMDFIL[STDERR]:=STDIO;
- FOR FD:=SUCC(STDERR) TO MAXOPEN DO
- CMDFIL[FD]:=CLOSED;
- WRITELN;
- write('$ ');
- FOR FT:= FIL1 TO FIL4 DO
- CMDOPEN[FT]:=FALSE;
- KBDN:=0;
- if (not getline(cmdlin,STDIN,MAXSTR)) then error('NO CMDLINE');
- CMDARGS:=0;
- JSKIP:=0;
- IDX:=1;
- WHILE ((CMDLIN[IDX]<>ENDSTR)
- AND(CMDLIN[IDX]<>NEWLINE)) DO BEGIN
- WHILE((CMDLIN[IDX]=BLANK)AND(JSKIP MOD 2 <>1))DO
- IDX:=IDX+1;
- IF(CMDLIN[IDX]<>NEWLINE) THEN BEGIN
- CMDARGS:=CMDARGS+1;
- CMDIDX[CMDARGS]:=IDX-JSKIP;
- WHILE((CMDLIN[IDX]<>NEWLINE)AND
- ((CMDLIN[IDX]<>BLANK)OR(JSKIP MOD 2 <>0)))DO BEGIN
- IF (CMDLIN[IDX]=DQUOTE)THEN BEGIN
- JSKIP:=JSKIP+1;
- IDX:=IDX+1
- END
- ELSE BEGIN
- CMDLIN[IDX-JSKIP]:=CMDLIN[IDX];
- IDX:=IDX+1
- END
-
- END;
- CMDLIN[IDX-JSKIP]:=ENDSTR;
- IDX:=IDX+1;
- IF (CMDLIN[CMDIDX[CMDARGS]]=LESS) THEN BEGIN
- XCLOSE(STDIN);
- CMDIDX[CMDARGS]:=CMDIDX[CMDARGS]+1;
- JUNK:=GETARG(CMDARGS,FNAME,MAXSTR);
- FD:=MUSTOPEN(FNAME,IOREAD);
- CMDARGS:=CMDARGS-1;
- END
- ELSE IF (CMDLIN[CMDIDX[CMDARGS]]=GREATER) THEN BEGIN
- XCLOSE(STDOUT);
- CMDIDX[CMDARGS]:=CMDIDX[CMDARGS]+1;
- JUNK:=GETARG(CMDARGS,FNAME,MAXSTR);
- FD:=MUSTCREATE(FNAME,IOWRITE);
- CMDARGS:=CMDARGS-1;
- END
- END
- END
- END;
-